//
//  Hwi.h
//  Hwi_Library_Demo
//
//  Created by Jeonghwi Kim on 13. 7. 5..
//  Copyright (c) 2013년 KDML. All rights reserved.
//
//  - Frameworks
//     QuartzCore.framework
//     MapKit.framework
//     CoreLocation.framework


#define NSEUC_KR_ENCODING -2147481280

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import <QuartzCore/QuartzCore.h>










@protocol Hwi_Delegate <NSObject>
@optional
-(void)hwi02_did_receive_data_from_json_network:(NSDictionary*)json_data string_data:(NSString*)string log_id:(NSString*)log_id;
-(void)hwi04_did_receive_postoffice_network:(NSMutableArray*)array_post_office_item;
-(void)hwi07_did_update_location:(CLLocationManager*)manager locations:(NSArray*)locations latitude:(NSString*)lat lon:(NSString*)lon address:(NSString*)address;
-(void)show_progress_bar:(UIView*)parent_view;
@end



@interface Postoffice_item : NSObject
@property (strong,nonatomic) NSString *string01_post_cd;
@property (strong,nonatomic) NSString *string02_address;
@end



@interface Hwi : NSObject<NSURLConnectionDataDelegate,NSXMLParserDelegate,CLLocationManagerDelegate>




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////    ------------        라이브러리 사용시 인지할 부분들     -------------      //////////////////////

// 싱글톤으로 Hwi 라이브러리를 생성 혹은 얻기
+(id)get_instance;



//  01. 숫자에 콤마(,)를 천단위로 삽입하여 리턴
-(NSString*)hwi01_add_comma:(NSString*)number;



//  02. NSDictionary 로 파라미터를 넘겨서 JSON 응답을 받는다.  ---> Hwi_Delegate 를 콜백으로 구현해줘야합니다. (Function02_VC.m 소스 참고)
//      is_second 는 YES 와 NO 두가지를 통해 최대 2개의 동시 연결을 지원한다.
-(void)hwi02_json_network_url:(NSString*)url parameter_dic:(NSDictionary*)params method:(NSString*)method callback:(id<Hwi_Delegate>)callback log_id:(NSString*)log_id is_second_try_for_same_time:(BOOL)is_second;

-(void)hwi02_json_network_url:(NSString *)url parameter_dic:(NSDictionary *)params method:(NSString *)method log_id:(NSString *)log_id is_second_try_for_same_time:(BOOL)is_second with_block:(void (^)(NSDictionary *dic))complete;



//  03. Email 체크로직입니다.
-(BOOL)hwi03_is_valid_email:(NSString *)emailString;


//  04. 동/읍/면 단위의 주소를 입력받아 우편번호와 주소값 받습니다. ---> Hwi_Delegate 를 콜백으로 구현해줘야합니다. (Function04_VC.m 소스 참고)
-(void)hwi04_get_address_from_postoffice_with_string:(NSString*)input_address and_postOffice_api_key:(NSString*)api_key callback:(id<Hwi_Delegate>)callback;

// 05. 앞의 문자열에 질의문자열이 포함되어있는지 여부를 리턴합니다.
-(BOOL)hwi05_is_contain_string:(NSString*)string query_string:(NSString*)string_word;


// 06. 현재시간을 NSDictionary 로 리턴합니다.
-(NSDictionary*)hwi06_get_now_is_ko_KR:(BOOL)you_want_korea_time;
// 06. 현재 날짜를 입력하면 타입별로 포맷팅해줍니다.
-(NSString*)hwi06_get_date_with_type:(int)type string:(NSString*)date_string;

// 07. 현재 위치를 가져옵니다.
-(void)hwi07_get_current_location_with_callback:(id<Hwi_Delegate>)callback;
-(void)hwi07_get_current_location_with_block:(void (^)(NSDictionary *dic))complete;

// 08. Progress Bar 관련 작업중
-(void)hwi08_show_progress_bar:(UIView*)parent_view;
-(void)hwi08_hide_progress_bar:(UIView*)parent_view;

// 09. hex string to rgb
-(UIColor*)hwi09_getColor_with_hex_string:(NSString*)hex;


@end


/////////////////////////    ------------        라이브러리 사용시 인지할 부분들     -------------      //////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////